Skip to content

CI/CD#1

Merged
JLaborda merged 32 commits intomainfrom
ci-cd
Jul 31, 2025
Merged

CI/CD#1
JLaborda merged 32 commits intomainfrom
ci-cd

Conversation

@JLaborda
Copy link
Copy Markdown
Member

This pull request introduces several enhancements to the project, including the addition of a continuous integration (CI) workflow, dependency updates, improved documentation, and significant refactoring of two key classes (AlphaOrder and BetaToAlpha), as well as a general cleanup of all the classes in the package (consensusUnion, consensusBES, etc). These changes aim to improve code maintainability, testing capabilities, and overall project structure.

CI and Build System Improvements:

  • Added a GitHub Actions workflow (.github/workflows/ci.yml) to run Maven tests on pushes and pull requests targeting the main branch. This includes Java setup, Maven package caching, and test execution.
  • Updated the pom.xml to include JUnit 5 (junit-jupiter) and Apache Commons Math3 dependencies, upgraded the Maven Surefire Plugin to version 3.1.2, and added the JaCoCo plugin for code coverage reporting. [1] [2]
  • Created unit tests to validate the functionality of the whole project. The coverage is shown in a badge in README.md

Documentation Enhancements:

  • Updated the README.md to include a CI status badge linking to the new GitHub Actions workflow.

Refactoring and Code Improvements:

AlphaOrder class:

  • Refactored the class to improve readability and maintainability, including adding comprehensive Javadoc comments and replacing legacy heuristic methods with a single computeAlpha method for calculating ancestral node order.
  • Introduced helper methods (checkExceptions, selectChild, coverEdge) to modularize logic and simplify the main computation flow.

BetaToAlpha class:

  • Enhanced the class with detailed Javadoc comments, encapsulated fields, and added a method to compute a random alpha order for testing. [1] [2]

BackwardEquivalenceSearchDSep class:

  • This class extracts the $$BES_d$$ component of the consensusBES algorithm so that it can be easily readable and maintained.
  • This class is enhanced with a cache that now uses DSeparationKey to avoid repeating calculations.
  • Like previous implementations, it uses the d-separation calculation, which is now in the Utils class.

ConsensusUnion class:

  • Cleaned up the class to avoid repeating code.

ConsensusBES class:

  • Separated the fusion method into two parts: First, a ConsensusUnion object that performs the consensus, and then a BackwardEquivalenceSearchDSep that applies the $$BES_d$$ algorithm to obtain the optimum fusion.

JLaborda added 30 commits July 10, 2025 10:29
@JLaborda JLaborda merged commit 282c9b5 into main Jul 31, 2025
1 check passed
@JLaborda JLaborda deleted the ci-cd branch July 31, 2025 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant